package 哈希;

import java.util.Arrays;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.Set;

/**
 * @author tmh
 * @date 2024/9/9 22:08
 * @description
 */
public class T128最长连续序列 {
    public int longestConsecutive(int[] nums) {
        int result = 0;
        Set<Integer> set = new HashSet<>();
        //先把数组里面的元素加入set
        for (int num : nums) {
            set.add(num);
        }
        //开始执行奇妙逻辑，看有没有比一个数还小的数，如果没有，就说明这个数最小，让他等于y，然后看比y大的数有多少
        for (int num : nums) {
            if (!set.contains(num - 1)) {
                int y = num;
                while (set.contains(y+1)){
                    y++;
                }
                result = Math.max(result,y-num+1);
            }
        }
        return result;
    }
}
